package com.yourenbang.lingyun.transaction.web.service.pay;

import com.yourenbang.lingyun.domain.PayTransactionIndex;
import com.yourenbang.transaction.api.model.vo.pay.PayTransaction;

/**
 * 订单服务
 */
public interface PayTransactionOrderService {

    /**
     * 通过订单号号获取订单信息(不推荐)
     */
    PayTransaction getByOrderNo(String orderNo);

    /**
     * 通过订单号号获取订单信息(推荐)
     */
    PayTransaction getByOrderNo(String userBaseId, String orderNo);

    /**
     * 通过系统参考号获取订单信息
     */
    @Deprecated
    PayTransaction getBySysRef(String userBaseId, String sysRef, String merchantNo, Short channelId, Short platNo);

    /**
     * 插入
     */
    void insert(PayTransaction po);

    /**
     * 更新
     */
    void updateById(PayTransaction po);

    /**
     * 根据id更新(不判断乐观锁)
     */
    void updateByIdNoVersion(PayTransaction po);

    /**
     * 根据PayTransaction获得payTransactionIndex
     * @param po
     */
    PayTransactionIndex getPayTransactionIndexByPayTransaction(PayTransaction po);


    /**
     * 用户是否有电签交易
     */
    int countByUserEpos(String userBaseId);

}
